/* 
类型推断: TS会在没有明确的指定类型的时候推测出一个类型
    定义变量时赋值了, 推断为对应的类型
    定义变量时没有赋值, 推断为any类型
*/

(() => {
  let a = 3  // 此时a被推断为number类型
  // a = 'abc' // error

  let b // b被推断为any类型
  b = 4
  b = 'abc'

  let c = undefined
  let d = null    // 如果初始值为null/undefined, 推断为any类型

})()
